Memory devices are typically provided as internal, semiconductor, integrated circuits and/or external removable devices in computers or other electronic devices. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data and can include random-access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), among others. Non-volatile memory can retain stored data when not powered and can include NAND flash memory, NOR flash memory, phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetic random access memory (MRAM), among others.
Memory devices can be combined together to form a solid state drive (SSD). An SSD can include non-volatile memory (e.g., NAND flash memory and/or NOR flash memory), and/or can include volatile memory (e.g., DRAM and/or SRAM), among various other types of non-volatile and volatile memory. DRAM devices can include memory cells storing data in a charge storage structure such as a capacitor, for instance, and may be utilized as volatile memory for a wide range of electronic applications.
Memory cells (e.g., DRAM cells) in an array architecture can be programmed to a target (e.g., desired) state. For instance, electric charge can be placed on or removed from the charge storage structure (e.g., capacitor) of a memory cell to program the cell to a particular data state.
For example, a single level cell (SLC) can be programmed to a targeted one of two different data states, which can be represented by the binary units 1 or 0. Some memory cells can be programmed to a targeted one of more than two data states (e.g., 1111, 0111, 0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100,0000, 1000, 1010, 0010, 0110, and 1110). Such cells may be referred to as multi state memory cells, multiunit cells, or multilevel cells (MLCs). MLCs can provide higher density memories without increasing the number of memory cells since each cell can represent more than one digit (e.g., more than one bit).
A state of a memory cell (e.g., a DRAM cell) can be determined by sensing the stored charge on the charge storage structure (e.g., capacitor) of the cell. However, a number of mechanisms, such as charge loss (e.g., charge leakage), for example, can cause the stored charge of the memory cell to change. As a result of the change in the stored charge, a recurring error may occur when the state of the cell is sensed. For example, the cell may repeatedly be sensed to be in a state other than the target state (e.g., a state different than the state to which the cell was programmed). Resolving recurring errors can consume finite error correction code (ECC) resources.